#ifndef _FS_H_
#define _FS_H_

#include <sys/types.h>

void buffer_init(long buffer_end);

#define NR_HASH 307
#define NR_BUFFERS nr_buffers
#define BLOCK_SIZE 1024

struct buffer_head {
    char *b_data;               // 指向数据块（1KB）的指针
    unsigned long b_blocknr;    // 块号
    unsigned short b_dev;       // 设备号，0-空闲
    unsigned char b_uptodate;   // 是否更新
    unsigned char b_dirt;       // 脏位，0-未修改，1-修改过
    unsigned char b_count;      // 使用的用户数
    unsigned char b_lock;       // 0 - 未上锁，1 - 上锁
    struct buffer_head *b_prev; // hash队列的上一块
    struct buffer_head *b_next; // hash队列的下一块
    struct buffer_head *b_prev_free;    // 空闲表上一块
    struct buffer_head *b_next_free;    // 空闲表下一块
};

#endif
